package com.demo.java.OD101_150.OD113;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

/**
 * @author bug菌
 * @Source 公众号：猿圈奇妙屋
 * @des： 【最低位排序】问题
 * @url： https://blog.csdn.net/weixin_43970743/article/details/145697478
 */
public class OdMain {
    // 方法: 根据每个整数的最后一位数来排序
    public static void main(String[] args) {
        try {
            Scanner scan = new Scanner(System.in);
            String douhao = ",";
            String inputValue = scan.nextLine();

            // 检查输入为空或仅为逗号的情况
            if (inputValue == null || inputValue.length() == 0) {
                System.out.println("input error");
                return;
            }

            // 分割输入的字符串，转化为整数数组
            String[] allNumber = inputValue.split(douhao);
            if (allNumber.length < 1 || allNumber.length > 1000) {
                System.out.println("input error");
                return;
            }

            // 创建列表存储整数值
            List<Integer> resultList = new ArrayList<>();
            for (String num : allNumber) {
                resultList.add(Integer.parseInt(num));  // 将字符串转换为整数并添加到列表
            }

            // 排序：根据每个整数的绝对值的个位数进行排序
            resultList.sort((c1, c2) -> Integer.compare(getKey(c1), getKey(c2)));

            // 输出排序后的列表
            for (int j = 0; j < resultList.size(); ++j) {
                System.out.print(resultList.get(j));  // 输出每个整数
                if (j != resultList.size() - 1) {  // 输出逗号，避免最后一个数字后面多余逗号
                    System.out.print(douhao);
                }
            }
            System.out.println();  // 输出换行，确保输出格式整洁
        } catch (Exception e) {
            System.out.println("input error");
        }
    }

    // 辅助方法：获取整数的最后一位数的绝对值
    public static int getKey(int j) {
        j = Math.abs(j);  // 取绝对值
        return j % 10;    // 获取个位数
    }
}